﻿Imports System.Text
Public Class JQueryUIButtonJS

    Public Overrides Function ToString() As String
        Dim sb As New StringBuilder
        sb.appendline("/*")
        sb.appendline(" * jQuery UI Button @VERSION")
        sb.appendline(" *")
        sb.appendline(" * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)")
        sb.appendline(" * Dual licensed under the MIT (MIT-LICENSE.txt)")
        sb.appendline(" * and GPL (GPL-LICENSE.txt) licenses.")
        sb.appendline(" *")
        sb.appendline(" * http://docs.jquery.com/UI/Button")
        sb.appendline(" *")
        sb.appendline(" * Depends:")
        sb.appendline(" *	jquery.ui.core.js")
        sb.appendline(" *	jquery.ui.widget.js")
        sb.appendline(" */")
        sb.appendline("(function($) {")
        sb.appendline("")
        sb.appendline("var lastActive,")
        sb.appendline("	baseClasses = ""ui-button ui-widget ui-state-default ui-corner-all"",")
        sb.appendline("	otherClasses = ""ui-state-hover ui-state-active "" +")
        sb.appendline("		""ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon ui-button-text-only"";")
        sb.appendline("")
        sb.appendline("$.widget(""ui.button"", {")
        sb.appendline("	options: {")
        sb.appendline("		text: true,")
        sb.appendline("		label: null,")
        sb.appendline("		icons: {")
        sb.appendline("			primary: null,")
        sb.appendline("			secondary: null")
        sb.appendline("		}")
        sb.appendline("	},")
        sb.appendline("	_init: function() {")
        sb.appendline("		this._determineButtonType();")
        sb.appendline("		this.hasTitle = !!this.buttonElement.attr('title');")
        sb.appendline("")
        sb.appendline("		var self = this,")
        sb.appendline("			options = this.options,")
        sb.appendline("			toggleButton = this.type == 'checkbox' || this.type == 'radio',")
        sb.appendline("			hoverClass = 'ui-state-hover' + (!toggleButton ? ' ui-state-active' : '');")
        sb.appendline("")
        sb.appendline("		if (options.label === null) {")
        sb.appendline("			options.label = this.buttonElement.html();")
        sb.appendline("		}")
        sb.appendline("")
        sb.appendline("		this.buttonElement")
        sb.appendline("			.addClass(baseClasses)")
        sb.appendline("			.attr('role', 'button')")
        sb.appendline("			.bind(""mouseenter.button"", function() {")
        sb.appendline("				if (options.disabled) { return; }")
        sb.appendline("				$(this).addClass(""ui-state-hover"");")
        sb.appendline("				if (this == lastActive) {")
        sb.appendline("					$(this).addClass(""ui-state-active"");")
        sb.appendline("				}")
        sb.appendline("			})")
        sb.appendline("			.bind(""mouseleave.button"", function() {")
        sb.appendline("				if (options.disabled) { return; }")
        sb.appendline("				$(this).removeClass(hoverClass);")
        sb.appendline("			});")
        sb.appendline("")
        sb.appendline("		switch (this.type) {")
        sb.appendline("			case 'checkbox':")
        sb.appendline("				this.buttonElement.bind('click.button', function() {")
        sb.appendline("					if (options.disabled) { return; }")
        sb.appendline("					$(this).toggleClass(""ui-state-active"");")
        sb.appendline("					self.element")
        sb.appendline("						.attr(""checked"", !self.element[0].checked)")
        sb.appendline("						.click();")
        sb.appendline("					self.buttonElement.attr('aria-pressed', self.element[0].checked);")
        sb.appendline("				});")
        sb.appendline("			break;")
        sb.appendline("			case 'radio':")
        sb.appendline("				this.buttonElement.bind('click.button', function() {")
        sb.appendline("					if (options.disabled) { return; }")
        sb.appendline("					$(this).addClass(""ui-state-active"");")
        sb.appendline("					self.element")
        sb.appendline("						.attr(""checked"", true)")
        sb.appendline("						.click();")
        sb.appendline("					self.buttonElement.attr('aria-pressed', true);")
        sb.appendline("")
        sb.appendline("					var radio = self.element[0],")
        sb.appendline("						name = radio.name,")
        sb.appendline("						form = radio.form,")
        sb.appendline("						radios;")
        sb.appendline("					if (name) {")
        sb.appendline("						if (form) {")
        sb.appendline("							radios = $(form).find('[name=' + name + ']');")
        sb.appendline("						} else {")
        sb.appendline("							radios = $('[name=' + name + ']', radio.ownerDocument)")
        sb.appendline("								.filter(function() {")
        sb.appendline("									return !this.form;")
        sb.appendline("								});")
        sb.appendline("						}")
        sb.appendline("						radios")
        sb.appendline("							.not(radio)")
        sb.appendline("							.map(function() {")
        sb.appendline("								return $(this).button('widget')[0];")
        sb.appendline("							})")
        sb.appendline("							.removeClass('ui-state-active')")
        sb.appendline("							.attr('aria-pressed', false);")
        sb.appendline("					}")
        sb.appendline("				});")
        sb.appendline("			break;")
        sb.appendline("			default:")
        sb.appendline("				this.buttonElement")
        sb.appendline("					.bind(""mousedown.button"", function() {")
        sb.appendline("						if (options.disabled) { return; }")
        sb.appendline("						$(this).addClass(""ui-state-active"");")
        sb.appendline("						lastActive = this;")
        sb.appendline("						$(document).one('mouseup', function() {")
        sb.appendline("							lastActive = null;")
        sb.appendline("						});")
        sb.appendline("					})")
        sb.appendline("					.bind(""mouseup.button"", function() {")
        sb.appendline("						if (options.disabled) { return; }")
        sb.appendline("						$(this).removeClass(""ui-state-active"");")
        sb.appendline("					});")
        sb.appendline("			break;")
        sb.appendline("		}")
        sb.appendline("")
        sb.appendline("		this._resetButton();")
        sb.appendline("	},")
        sb.appendline("")
        sb.appendline("	_determineButtonType: function() {")
        sb.appendline("		this.type = this.element.is(':checkbox')")
        sb.appendline("			? 'checkbox'")
        sb.appendline("			: this.element.is(':radio')")
        sb.appendline("				? 'radio'")
        sb.appendline("				: this.element.is('input')")
        sb.appendline("					? 'input'")
        sb.appendline("					: 'button';")
        sb.appendline("")
        sb.appendline("		if (this.type == 'checkbox' || this.type == 'radio') {")
        sb.appendline("			this.buttonElement = $(""[for="" + this.element.attr(""id"") + ""]"");")
        sb.appendline("			this.element.hide();")
        sb.appendline("			")
        sb.appendline("			var checked = this.element.is(':checked');")
        sb.appendline("			if (checked) {")
        sb.appendline("				this.buttonElement.addClass('ui-state-active');")
        sb.appendline("			}")
        sb.appendline("			this.buttonElement.attr('aria-pressed', checked)")
        sb.appendline("		} else {")
        sb.appendline("			this.buttonElement = this.element;")
        sb.appendline("		}")
        sb.appendline("	},")
        sb.appendline("")
        sb.appendline("	widget: function() {")
        sb.appendline("		return this.buttonElement;")
        sb.appendline("	},")
        sb.appendline("")
        sb.appendline("	destroy: function() {")
        sb.appendline("		this.buttonElement")
        sb.appendline("			.removeClass(baseClasses + "" "" + otherClasses)")
        sb.appendline("			.removeAttr('role')")
        sb.appendline("			.removeAttr('aria-pressed')")
        sb.appendline("			.html(this.buttonElement.find("".ui-button-text"").html());")
        sb.appendline("")
        sb.appendline("		if (!this.hasTitle) {")
        sb.appendline("			this.buttonElement.removeAttr('title');")
        sb.appendline("		}")
        sb.appendline("")
        sb.appendline("		if (this.type == 'checkbox' || this.type == 'radio') {")
        sb.appendline("			this.element.show();")
        sb.appendline("		}")
        sb.appendline("")
        sb.appendline("		$.Widget.prototype.destroy.call(this);")
        sb.appendline("	},")
        sb.appendline("")
        sb.appendline("	_setOption: function(key, value) {")
        sb.appendline("		$.Widget.prototype._setOption.apply(this, arguments);")
        sb.appendline("		this._resetButton();")
        sb.appendline("	},")
        sb.appendline("")
        sb.appendline("	_resetButton: function() {")
        sb.appendline("		if (this.type == 'input') {")
        sb.appendline("			if (this.options.label) {")
        sb.appendline("				this.element.val(this.options.label);")
        sb.appendline("			}")
        sb.appendline("			return;")
        sb.appendline("		}")
        sb.appendline("		var buttonElement = this.buttonElement,")
        sb.appendline("			buttonText = $(""<span></span>"")")
        sb.appendline("				.addClass(""ui-button-text"")")
        sb.appendline("				.html(this.options.label)")
        sb.appendline("				.appendTo(buttonElement.empty())")
        sb.appendline("				.text();")
        sb.appendline("")
        sb.appendline("		var icons = this.options.icons,")
        sb.appendline("			multipleIcons = icons.primary && icons.secondary;")
        sb.appendline("		if (icons.primary || icons.secondary) {")
        sb.appendline("			buttonElement.addClass(""ui-button-text-icon"" +")
        sb.appendline("				(multipleIcons ? ""s"" : """"));")
        sb.appendline("			if (icons.primary) {")
        sb.appendline("				buttonElement.prepend(""<span class='ui-button-icon-primary ui-icon "" + icons.primary + ""'></span>"");")
        sb.appendline("			}")
        sb.appendline("			if (icons.secondary) {")
        sb.appendline("				buttonElement.append(""<span class='ui-button-icon-secondary ui-icon "" + icons.secondary + ""'></span>"");")
        sb.appendline("			}")
        sb.appendline("			if (!this.options.text) {")
        sb.appendline("				buttonElement")
        sb.appendline("					.addClass(multipleIcons ? ""ui-button-icons-only"" : ""ui-button-icon-only"")")
        sb.appendline("					.removeClass(""ui-button-text-icons ui-button-text-icon"");")
        sb.appendline("				if (!this.hasTitle) {")
        sb.appendline("					buttonElement.attr(""title"", buttonText);")
        sb.appendline("				}")
        sb.appendline("			}")
        sb.appendline("		} else {")
        sb.appendline("			buttonElement.addClass(""ui-button-text-only"");")
        sb.appendline("		}")
        sb.appendline("	}")
        sb.appendline("});")
        sb.appendline("")
        sb.appendline("$.widget(""ui.buttonset"", {")
        sb.appendline("	_init: function() {")
        sb.appendline("		this.element.addClass(""ui-button-set"");")
        sb.appendline("		this.buttons = this.element.find(':button, :submit, :reset, :checkbox, :radio, a, .ui-button')")
        sb.appendline("			.button()")
        sb.appendline("			.map(function() {")
        sb.appendline("				return $(this).button('widget')[0];")
        sb.appendline("			})")
        sb.appendline("				.removeClass('ui-corner-all')")
        sb.appendline("				.filter(':first')")
        sb.appendline("					.addClass('ui-corner-left')")
        sb.appendline("				.end()")
        sb.appendline("				.filter(':last')")
        sb.appendline("					.addClass('ui-corner-right')")
        sb.appendline("				.end()")
        sb.appendline("			.end();")
        sb.appendline("	},")
        sb.appendline("")
        sb.appendline("	_setOption: function(key, value) {")
        sb.appendline("		if (key == 'disabled') {")
        sb.appendline("			this.buttons.button('option', key, value);")
        sb.appendline("		}")
        sb.appendline("")
        sb.appendline("		$.Widget.prototype._setOption.apply(this, arguments);")
        sb.appendline("	},")
        sb.appendline("")
        sb.appendline("	destroy: function() {")
        sb.appendline("		this.element.removeClass('ui-button-set');")
        sb.appendline("		this.buttons")
        sb.appendline("			.button(""destroy"")")
        sb.appendline("			.removeClass(""ui-corner-left ui-corner-right"");")
        sb.appendline("")
        sb.appendline("		$.Widget.prototype.destroy.call(this);")
        sb.appendline("	}")
        sb.appendline("});")
        sb.appendline("")
        sb.appendline("")
        sb.appendline("})(jQuery);")

        Return sb.tostring
    End Function

End Class
